<?php
class Inversiones extends CI_Controller
{
    function __construct()
    {
        // Call the Model constructor
        parent::__construct();
        if ($sessionData = $this->session->userdata('datosUser')) {
            $this->lang->load($sessionData['idioma'], $sessionData['idioma']);
            $this->clear_cache();
        } else {
            redirect('frontend/login/login');
        }
    }

    function clear_cache()
    {
        $this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, no-transform, max-age=0, post-check=0, pre-check=0");
        $this->output->set_header("Pragma: no-cache");
    }

    /**
     * Cargar la página principal del módulo inversion
     */
    function index(){
        $this->load->model('backend/inversion/mobtenerlistavalores');
        $this->mobtenerlistavalores->obtenerLista();
        $this->load->model('backend/inversion/minversion');
        $data['accionesEmpresa'] = $this->minversion->obtenerAccionesEmpresa();
        $this->cargamenu->cargaTodo('backend/inversion/inversion', $data);
    }

    /**
     * Recoge los datos de la empresa y carga la página de compra
     *
     * @param int idEmpresa
     */
    function comprarAcciones($idEmpresa) {
        $this->load->model('backend/inversion/minversion');
        $data['valoresEmpresa'] = $this->minversion->obtenerValorEmpresa($idEmpresa);
        $this->load->model('backend/cuenta/mcuenta');
        $sessionData = $this->session->userdata('datosUser');
        $data['cuentas'] = $this->mcuenta->misCuentas($sessionData['idCliente']);
        $this->cargamenu->cargaTodo('backend/inversion/comprarInversion', $data);
    }

    /**
     * Recoge los valores enviados por POST y realiza la compra de acciones.
     */
    function comprar() {
        $sessionData = $this->session->userdata('datosUser');
        $data['idEmpresa'] = $this->input->post("idEmpresa");
        $data['idCuenta'] = $this->input->post("cuenta");
        $data['idCliente'] = $sessionData["idCliente"];
        $data['cantidad'] = str_replace(",", "", $this->input->post("txtCantidad"));
        $data['compraVenta'] = 0;
        $data['valor'] = str_replace(",", "", $this->input->post("valor"));
        $p = stripos($data['valor'],".");
        $data['valor'] = substr($data['valor'],0,($p+3));
        $this->load->model("backend/inversion/minversion");
        $this->minversion->comprarAcciones($data);
        $data['text'] = lang('comprarAcciones');
        $data['asunto'] = lang('compraDeAcciones');
        $this->load->model('backend/notificacion/mnotificacion');
        $this->mnotificacion->insertarNotificacion($data);
        $this->listadoInversiones();
    }

    /**
     * Carga la página con el listado de inversiones que tiene el usuario logeado.
     */
    function listadoInversiones() {
        $this->load->model('backend/inversion/mobtenerlistavalores');
        $this->mobtenerlistavalores->obtenerLista();
        $this->load->model('backend/inversion/minversion');
        $sessionData = $this->session->userdata('datosUser');
        $this->load->model("backend/inversion/minversion");
        $data['inversiones'] = $this->minversion->listadoInversiones($sessionData['idCliente']);
        $this->cargamenu->cargaTodo('backend/inversion/listado', $data);
    }

    /**
     * Carga el gráfico de la consulta de mercado.
     */
    function consultamercado(){
        $this->cargamenu->carga('backend/inversion/consultamercado');
    }

    /**
     * Realiza la venta de acciones y redirige al listado de inversiones
     *
     * @param int idAccion
     * @param int cantidad
     * @param int idCuenta
     * @param int idEmpresa
     * @param int idCliente
     * @param int valor
     */
    function venderAcciones($idAccion, $cantidad, $idCuenta, $idEmpresa, $idCliente, $valor) {
        $this->load->model('backend/inversion/minversion');
        $cantidad = $this->minversion->venderAcciones($idAccion, $cantidad, $idCuenta, $idEmpresa, $idCliente, $valor);
        if ($cantidad[0]->cantidad == 0) {
            $this->minversion->sinAcciones($idAccion);
        }
        $data['text'] = lang('venderAcciones');
        $data['idCliente'] = $idCliente;
        $data['asunto'] = lang('ventaDeAcciones');
        $this->load->model('backend/notificacion/mnotificacion');
        $this->mnotificacion->insertarNotificacion($data);
        $this->listadoInversiones();
    }

    /**
     * Prepara la página para realizar la venta de acciones.
     *
     * @param int idAccion
     */
    function vender($idAccion) {
        $this->load->model('backend/inversion/minversion');
        $data['inversion'] = $this->minversion->obtenerInversion($idAccion);
        $this->load->model('backend/cuenta/mcuenta');
        $sessionData = $this->session->userdata('datosUser');
        $data['cuentas'] = $this->mcuenta->misCuentas($sessionData['idCliente']);
        $sessionData = $this->session->userdata('datosUser');
        $data['idCliente'] = $sessionData['idCliente'];
        $this->cargamenu->cargaTodo('backend/inversion/vender', $data);
    }

}